return {

    {
        "iamcco/markdown-preview.nvim",
        build = function()
            vim.fn["mkdp#util#install"]()
        end,
        config = function()
            vim.g.mkdp_filetypes = { "markdown", "plantuml" }
            vim.keymap.set("n", "<space>dm", ":MarkdownPreviewToggle<cr>", {})
        end,
    },
    {
        -- markdown里编辑表格
        "SCJangra/table-nvim",
        ft = "markdown",
        opts = {},
    },

    {
        "MeanderingProgrammer/render-markdown.nvim",
        main = "render-markdown",
        opts = {
            code = {
                style = "none", -- { enabled = false }
            },
        },
        name = "render-markdown", -- Only needed if you have another plugin named markdown.nvim
        dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
        -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins
        -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
    },

    {
        "HakonHarnes/img-clip.nvim",
        cmd = "PasteImage",
        config = function()
            require("img-clip").setup({
                default = {
                    dir_path = "images", -- directory path to save images to, can be relative (cwd or current file) or absolute
                },
            })
        end,
        keys = {
            -- suggested keymap
            { "<C-M-v>", "<cmd>PasteImage<cr>", desc = "Paste clipboard image" },
        },
    },
    {
        "richardbizik/nvim-toc",
        ft = "markdown", -- Lazy load on markdown filetype
        config = function()
            require("nvim-toc").setup({
                toc_header = "My table of contents",
            })
        end,
    },
}
